package pl.easyshop.core.services.user.group;

import java.util.List;
import java.util.Set;

import pl.easyshop.core.model.UserModel;

/**
 * Define methods to manage user groups.
 * 
 * @author Pawel Witkowski
 */
public interface UserGroupService  {

	Long createGroup(UserGroupData UserGroupData);
	void updateGroup(UserGroupData UserGroupData);
	UserGroupData getGroup(Long groupId);
	void removeGroup(Long groupId);
	List<UserGroupData> getGroups();
	List<UserGroupData> getGroups(Long userId);
	List<UserModel> getUsers(Long groupId);
	void addRoles(Long groupId, Set<String> roles);
	void bindUserToGroup(Long userId, Long groupId);
	void bindUsersToGroup(List<Long> userId, Long groupId);
	
}
